Extracting the Parallelism in Program with non-structured statements
نویسندگان
چکیده
Non-structured programs are diicult to parallelize. First, the scope of the non-structured statements may interact and the execution trajectories can overlap, preventing the unique determination of the scope of a control statement. Second, even if the scope of a non-structured statement is determined and is converted into a while loop, this while loop is still diicult to parallelize due to the loop carried dependencies of the control variables. In this paper, a method of program structuring is proposed, which is based on a hammock transformation of the ow graph, and converts non-structured statements into block if-statements and while loops. Furthermore, an algorithm was developed to transform a common type of while loops into do loops. The technique works for while loops of which the control variables appear as a linear recurrence relation. As a result, the loop carried dependencies generated by the control variables are removed. If there are no other loop carried dependencies, the do loop may then be converted into a doall loop. The algorithm was used to test and convert a significant number of while loops into doall loops for a suite of well-known numerical algorithms. Abstract Non-structured programs are diicult to parallelize. First, the scope of the non-structured statements may interact and the execution trajectories can overlap, preventing the unique determination of the scope of a control statement. Second, even if the scope of a non-structured statement is determined and is converted into a while loop, this while loop is still diicult to parallelize due to the loop carried dependencies of the control variables. In this paper, a method of program structuring is proposed, which is based on a hammock transformation of the ow graph, and converts non-structured statements into block if-statements and while loops. Furthermore, an algorithm was developed to transform a common type of while loops into do loops. The technique works for while loops of which the control variables appear as a linear recurrence relation. As a result, the loop carried dependencies generated by the control variables are removed. If there are no other loop carried dependencies, the do loop may then be converted into a doall loop. The algorithm was used to test and convert a significant number of while loops into doall loops for a suite of well-known numerical algorithms.
منابع مشابه
Using Hammock Graphs to Eliminate Nonstructured Branch Statements
The detection of parallelism is based on the dependence analysis of the program. One of the key problems is to partition the program into independent subtasks in the presence of control statements (MIMD). In this paper the nonstructured control statements are converted into structured ones. In this way, a large block of statements is obtained, and the control dependences of the program are easi...
متن کاملPresenting a method for extracting structured domain-dependent information from Farsi Web pages
Extracting structured information about entities from web texts is an important task in web mining, natural language processing, and information extraction. Information extraction is useful in many applications including search engines, question-answering systems, recommender systems, machine translation, etc. An information extraction system aims to identify the entities from the text and extr...
متن کاملEfficient Program Slicing Algorithms for Measuring Functional Cohesion and Parallelism
Program slicing is the task of finding all statements in a program that directly or indirectly influence the value of a variable occurrence. The set of statements that can affect the value of a variable at some point in a program is called a program slice. In several software engineering applications, such as program debugging and measuring program cohesion and parallelism, several slices are c...
متن کاملNon-strict independence-based program parallelization using sharing and freeness information
The current ubiquity of multi-core processors has brought renewed interest in program parallelization. Logic programs allow studying the parallelization of programs with complex, dynamic data structures with (declarative) pointers in a comparatively simple semantic setting. In this context, automatic parallelizers which exploit and-parallelism rely on notions of independence in order to ensure ...
متن کاملIteration Space Slicing and ItsApplication
Program slicing is an analysis that answers questions such as \Which statements might aaect the computation of variable v at statement s?" or \Which statements depend on the value of v computed in statement s?". The answers computed by program slicing are generally a set of statements. We introduce the idea of iteration spacing slicing: we reene program slicing to ask questions such as \Which i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994